#ifndef _2_92_H
#define _2_92_H
#include<limits.h>

typedef unsigned float_bits;

/* Compute -f, If f is NaN, then return f. */
float_bits float_negate(float_bits f){
    float_bits result = f;

    float_bits sign = f >> 31;
    float_bits exp = f >> 23 & 0xFF;
    float_bits frac = f      & 0x7FFFFF;

    if(!((exp == 0xFF) && (frac != 0))){
        if(sign != 0)
            result &= (unsigned) INT_MIN - 1;
        else
            result |= (unsigned) INT_MIN;
    }

    return result;
}


#endif // _2_92_H

